import { TIME_PER_FPS } from './config';

/**
 * 根据外部传入的起始数据索引位置和条数来返回一个新的数据列表
 * @param {*} init 起始数据索引位置
 * @param {*} count 数据条数
 * @returns 返回一个数据列表数组
 */
export function getData(init, count) {
  const arr = [];

  for (let i = init; i <= count; i++) {
    arr.push(i);
  }

  return arr;
}

/**
 * 该方法告诉浏览器，重绘之前调用指定的回调函数更新动画
 * @param {*} callback 用户指定的回调
 */
export function setAnimationFrame(callback) {
  let beginTime = Date.now();

  requestAnimationFrame(function cb() {
    const endTime = Date.now();
    //执行用户指定的回调
    callback();

    //前后时间间隔内 大于 动画帧数每帧时间时
    if (endTime - beginTime >= TIME_PER_FPS) {
      //重置开始时间为结束时间
      beginTime = endTime;
      //再次执行cb函数即本函数作用域
      requestAnimationFrame(cb);
    }
  });
}
